package com.gxa.dao.activity;

import com.gxa.pojo.activity.Activity;
import com.gxa.pojo.activity.ActivityType;
import com.gxa.pojo.activity.GoodsActivity;
import com.gxa.pojo.goods.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ActivityMapper {
    /**
     * 查看所有的活动列表 -- 查询所有的活动
     * @return List<Activity>
     */
    List<Activity> findAllActivity();

    /**
     * 添加活动的类型
     * @param activityType
     * @return boolean
     */
    boolean addActivityType(ActivityType activityType);

    /**
     * 查看活动类型 -- 查询所有的活动类型
     * @return List<ActivityType>
     */
    List<ActivityType> findAllActivityType();

    /**
     * 添加活动
     * @param activity
     * @return boolean
     */
    boolean addActivity(Activity activity);

    /**
     * 开启或者关闭活动
     * @param aid 活动的编号
     * @param state 开启关闭状态码
     * @return int
     */
    int openAndCloseActivity( int aid,  int state);

    /**
     * 开启或者关闭活动类型
     * @param atypeid 活动类型id
     * @param state 开启关闭状态码
     * @return int
     */
    int openAndCloseActivityType(int atypeid,int state);

    /**
     * 查找开启了的活动类型
     * @return List<ActivityType>
     */
    List<ActivityType> findOpenActivityType();

    /**
     * 查找开启了的活动
     * @return List<ActivityType>
     */
    List<Activity> findOpenActivity();

    /**
     * 查看活动下对应的活动物品
     * @param aid 活动编号
     * @return List<GoodsActivity>
     */
    List<GoodsActivity> findActivityGoods(int aid);

    /**
     * 活动管理下通过一二级类查询商品
     * @param onetypename 一级类名
     * @param twotypename 二级类名
     * @return
     */
    List<Goods> findActivityGoodsByType( String onetypename, String twotypename);

    /**
     * 查询活动的类型的单个字段
     * @return
     */
    List<String> findActivityTypes();

    /**
     * 查询商品的一级类别单个字段
     * @return
     */
    List<String> findOneTypeName();

    /**
     * 查询商品的二级类别单个字段
     * @return
     */
    List<String> findTwoTypeName(String onetypename);

    /**
     * 删除活动下的物品
     * @param gid 物品id
     * @return
     */
    int deleteActivityGoods(int gid);

    /**
     * 添加活动是中文，对应去找到活动类型的id
     * @param type
     * @return
     */
    int findActivityTypeId(String type);

    /**
     * 添加参加活动的商品
     * @param goodsActivity
     * @return
     */
    boolean addActivityGoods(GoodsActivity goodsActivity);

    int updateActivityGoodsCount(int count,int aid,int gid);




}
